using UnityEngine;
using System.Collections;

namespace CFE
{
public class Kreep : MonoBehaviour {
    public int unit_type;//Тип юнита
    public string Race;//Раса
	private Units unit;//наши способности и поля, как юнита
	private Base target;//наша цель
	private Base unit_base;//наши базовые параметры
	private GlobalVars gv;//глобальный список существующих объектов
	
	public void initialize(string _Race,int _unit_type)
	{
		Race=_Race;
		unit_type=_unit_type;
		unit=gameObject.GetComponent<Units>();
		unit.initialize(Race,unit_type);//инициализируем юнита
		unit_base=gameObject.GetComponent<Base>();
		//Добовление себя в глобальный список объектов
		gv=GameObject.FindGameObjectWithTag("GlobalVars").GetComponent<GlobalVars>();		
	}
		
	// Use this for initialization
	void Awake () {
	
}

	
	// Update is called once per frame
	void FixedUpdate () {
			unit_base.Regen();//восстанавливаем здоровье
				if(target==null || target.IsBuilding)//если у нашего юнита нет цели
				{
					unit.InFight=false;//выводим его из боевого режима
					if(unit_base.Aliance==1)//определяем принадлежность к фракции
					{
						foreach(var kreep in gv.Aliance2)//ищем противника в глобальном списке объектов
						{		
								if(unit.InRadiusSee(kreep.Pos.position))//если противник в поле зрения
								{
									target=kreep;//делаем его целью
									if(!target.IsBuilding)//проверяем не здание ли(у зданий мешьний приоритет)
									break;
								}
						}
					}
					else if(unit_base.Aliance==2)//определяем принадлежность к фракции
					{
						foreach(var kreep in gv.Aliance1)//ищем противника в глобальном списке объектов
						{		
								if(unit.InRadiusSee(kreep.Pos.position))//если противник в поле зрения
								{
									target=kreep;//делаем его целью
							        if(!target.IsBuilding)//проверяем не здание ли(у зданий мешьний приоритет)
									break;
								}
						}
					}
				}				
				if(target!=null)//если у нас уже есть цель
				{
					if(!unit.InRadiusSee(target.Pos.position))//если цель вне поля зрения
					{
						target=null;//сбрасываем её
						unit.InFight=false;//выходим из боевого режима
					}	
					else//иначе
					{ 
						unit.InFight=true;//включаем боевой режим
						unit.Attack(target);//атакуем цель
					}
				}				
	}
}
}